#include "seqlist.h"


// 创建一个空的顺序表
seqlist *create_empty_seqlist()
{
    // 分配内存空间
    seqlist * l = (seqlist *)malloc(sizeof(seqlist));
    if (NULL == l) {
        printf("malloc failed!\n");
    }
    // 初始化
    memset(l, 0, sizeof(seqlist)); // sizeof(l) 32位指针占4字节，不可使用
    l->n = 0; // 可省略
    return l;
} 
// 插入数据
void insert_data_seqlist(seqlist *l, dataType data) {
    l->buf[l->n] = data;
    l->n++;
}

// 输出数据
void print_data_seqlist(seqlist *l) {
    int i = 0;
    for(i = 0; i < l->n; i++){
        printf(" %d \n", l-> buf[i]);
    }
    printf("\n");

}

// 判断顺序表是否满了，满了返回1， 否则返回0
int is_full_seqlist(seqlist *l) {
    return l->n == MAX ? 1 : 0;
}

// 判断是否为空
int is_empty(seqlist *l) {
    return l->n == 0 ? 1 : 0;
}
// 删除元素
int delete_data(seqlist *l, dataType data) {
    if (is_empty(l)) return -1;
    int i = 0,j = 0;
    for (i = 0; i < l->n; i++) {
        if (l->buf[i] != data) {
            l->buf[j] = l->buf[i];
            j++;
        }
        
    }
    l->n = j;
    if (i == j) {
        return -2;
    } else {
        printf("delete success!\n");
    }
    return 0;

}